﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using BGCOP.CAVTOP.BUSINESSLAYER;
using BGCOP.CAVTOP.COMMON;

namespace BGCOP.CAVTOP.WINFORMS
{
    public partial class frmModeloVehiculo : Form
    {
        public Utilitys ut = new Utilitys();
        private LogCls logF = new LogCls();

        public frmModeloVehiculo()
        {
            InitializeComponent();
        }

        private void frmModeloVehiculo_Load(object sender, EventArgs e)
        {
            MarcasVehiculo dbm = new MarcasVehiculo();
            comboBox1.DisplayMember = "NombreMarcaVehiculo";
            comboBox1.ValueMember = "idMarcaVehiculo";
            comboBox1.DataSource = dbm.ListarTodos();
            comboBox1.SelectedIndex = 0;

            comboBox2.DataSource = dbm.ListarTodos();
            comboBox2.DisplayMember = "NombreMarcaVehiculo";
            comboBox2.ValueMember = "idMarcaVehiculo";

            llenaLista();
        }
        public void llenaLista(int id=0)
        {
           
            
            ModelosVehiculo tmp = new ModelosVehiculo();
            listBox1.DataSource = tmp.ListarTodos(Convert.ToInt32(comboBox1.SelectedValue));
            listBox1.DisplayMember = "NombreModelo";
            listBox1.ValueMember = "idModeloVehiculo";
        }
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex == -1)
            {
                return;
            }
            TModeloVehiculo  tmp = (TModeloVehiculo)listBox1.SelectedItem;
            txtModelo.Text = tmp.NombreModelo;
            try
            {
                comboBox2.SelectedIndex = comboBox1.SelectedIndex;
            }
            catch (Exception)
            {
                
                //throw;
            }
            
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            txtModelo.Focus();
            listBox1.SelectedIndex = -1;
            comboBox2.SelectedIndex = -1;
            txtModelo.Text = "";
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (listBox1.SelectedIndex >= 0)
            {
                ModelosVehiculo tmp = new ModelosVehiculo();
                if (MessageBox.Show("Desea eliminar el registro seleccionado?", Properties.Settings.Default.Titulo,
                MessageBoxButtons.YesNoCancel) == DialogResult.Yes)
                {
                    tmp.EliminarModeloVehiculo(Convert.ToInt32(listBox1.SelectedValue));
                    MessageBox.Show("El registro se elimino con exito!", Properties.Settings.Default.Titulo
                        , MessageBoxButtons.OK);
                    llenaLista();
                }

            }
            
        }

        private void btnModificar_Click(object sender, EventArgs e)
        {
            TModeloVehiculo tmp = new TModeloVehiculo();
            tmp.NombreModelo = txtModelo.Text;
            tmp.idMarcaVehiculo = (short) comboBox2.SelectedValue; 
            tmp.fechaUltimaGestion = DateTime.Now;
            tmp.usuarioUltimaGestion = (int?)BGCOP.CAVTOP.WINFORMS.Program.idUsuarioActual;

            if (listBox1.SelectedIndex == -1)
            {
                //es un nuevo registro
                
                ModelosVehiculo mm = new ModelosVehiculo();
                mm.CrearModeloVehiculo(txtModelo.Text, DateTime.Now, 
                    (int)BGCOP.CAVTOP.WINFORMS.Program.idUsuarioActual,(short)tmp.idMarcaVehiculo);
                MessageBox.Show("El registro se agrego con exito!", Properties.Settings.Default.Titulo
                    , MessageBoxButtons.OK);
                llenaLista();
            }
            else
            {
                //es un registro existente

                ModelosVehiculo mm = new ModelosVehiculo();
                mm.ModificarModelo(Convert.ToInt32(listBox1.SelectedValue), tmp);
                MessageBox.Show("El registro se modificó con exito!", Properties.Settings.Default.Titulo
                   , MessageBoxButtons.OK);
                llenaLista();

            }
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            llenaLista(Convert.ToInt32( comboBox1.SelectedValue)-1);
        }
    }
}
